package mantenimiento.servlet.repuesto;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;

import mantenimiento.dao.RepuestoDAO;
import mantenimiento.dao.HistoriaDAO;
import mantenimiento.excepcion.DAOExcepcion;
import mantenimiento.modelo.Fecha;
import mantenimiento.modelo.Repuesto;
import mantenimiento.modelo.Historias;

public class RspuestoNuevoServlet extends javax.servlet.http.HttpServlet
		implements javax.servlet.Servlet {

	static final long serialVersionUID = 1L;

	public RspuestoNuevoServlet() {
		super();
                System.out.println("se ingreso al sevlet repuesto");
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// Debe haber creado el directorio /imagenes/ en el Web Page y colocar
		// el jar en la carpeta /lib/

		System.out.println("ProductoInsertarServlet: processRequest: inicio");
                String usuario="";
		String grupo = "";
		String nombre = "";
		String cantidad = "";
		String costo = "";
                String descripcion="";
		String nombreImagen = "ALFAS";

		DiskFileUpload fu = new DiskFileUpload();
		// Tamanioo maximo que debe tener el archivo, sino lanzara un
		// FileUploadException
		fu.setSizeMax(5000000);

		try {
			List lista = fu.parseRequest(request);
			Iterator itr = lista.iterator();
			while (itr.hasNext()) {
				FileItem fi = (FileItem) itr.next();
				if (!fi.isFormField()) {
					nombreImagen = fi.getName();
					if (!"".equals(nombreImagen)) {
						int slash = nombreImagen.lastIndexOf("\\");
						if (slash != -1) {
							nombreImagen = nombreImagen.substring(slash + 1);
							System.out.println("1: " + nombreImagen);
						}
						// Windows no reconoce /'s
						slash = nombreImagen.lastIndexOf("/");
						if (slash != -1) {
							nombreImagen = nombreImagen.substring(slash + 1);
							System.out.println("2: " + nombreImagen);
						}
						// En caso el nombre del archivo sea C:archivo.txt
						slash = nombreImagen.lastIndexOf(":");
						if (slash != -1) {
							nombreImagen = nombreImagen.substring(slash + 1);
							System.out.println("3: " + nombreImagen);
						}
						File directorio = new File(getServletContext()
								.getRealPath("imagenes/"));
						File pathUpload = new File(directorio + "\\"
								+ nombreImagen);
						fi.write(pathUpload);
						System.out.println("Upload; fieldName: " + fi.getFieldName()
								+ ", fileName: " + nombreImagen
								+ ", contentType: " + fi.getContentType()
								+ ", sizeInBytes: " + fi.getSize()
								+ ", pathUpload: " + pathUpload);
					} else {
						nombreImagen = "";
					}
				}
                                if ("usuario".equals(fi.getFieldName())) {
					usuario = fi.getString();
				}
				if ("grupo".equals(fi.getFieldName())) {
					grupo = fi.getString();
				}
				if ("nombre".equals(fi.getFieldName())) {
					nombre = fi.getString();
				}
				if ("cantidad".equals(fi.getFieldName())) {
					cantidad = fi.getString();
				}
				if ("costo".equals(fi.getFieldName())) {
					costo = fi.getString();
				}
                                if ("descripcion".equals(fi.getFieldName())) {
					descripcion = fi.getString();
				}
			}
			Repuesto vo = new Repuesto();
			vo.setIdgrupo(Integer.parseInt(grupo));
			vo.setNombre(nombre);
                        vo.setCosto(Integer.parseInt(costo));
                        vo.setCantidad(Integer.parseInt(cantidad));
                        vo.setDescripcion(descripcion);

//			vo.setPrecio(Float.parseFloat(precio));
//			vo.setStock(Integer.parseInt(stock));
			RepuestoDAO dao = new RepuestoDAO();
			dao.insertar(vo);
			request.getRequestDispatcher("/repuesto.jsp").forward(
					request, response);

		} catch (FileUploadException fue) {
			System.err.println(fue.toString());
		} catch (Exception ioe) {
			System.err.println(ioe.toString());
		}
  System.out.println("inicio-------------servletRepuesto----------------");

        Historias vo2 = new Historias();
        Fecha fe = new Fecha();
        System.out.println(usuario);
        System.out.println("xxxxxxxxxxxxxxxxxx--------------------------------------");
        vo2.setUsuario(usuario);
        System.out.println("xxxxxxxxxxxxxxxxxx--------------------------------------");
//        vo2.getUsuario()
        vo2.setAccion("Crear");
        vo2.setObjeto("Repuesto");
        vo2.setNom_objeto(nombre);
        vo2.setFecha(fe.getFecha());
        vo2.setHora(fe.getHora());
        HistoriaDAO hi = new HistoriaDAO();
        try {
            hi.insertar(vo2);
            System.out.println("se inserto la historia de repusto correctamente.");
        } catch (DAOExcepcion e1) {
            System.err.println("Error de historia");
        }
        System.out.println("hecho--------------------------------------");

	}
}